package com.holyant.goods.dto.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.QueryDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 商品报价实体 gds_sku_price
 * 
 * @author g
 * @date 2022-02-09
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("商品报价")
public class GdsSkuPriceQueryDto extends QueryDto {

    private static final long serialVersionUID = 1L;

    /** 报价类型(10指引价20结算价) */
    @ApiModelProperty(value = "报价类型")
    private Integer quoteType;
    /** 企业id */
    @ApiModelProperty(value = "企业id")
    private Long enterpriseId;
    /** 企业名称 */
    @ApiModelProperty(value = "企业名称")
    private String enterpriseName;

    /**
     * 平台
     */
    private String platform;

    /** 报价方式 10：包邮不包税，20：包邮包税，30: 不包邮不包税 */
    @ApiModelProperty(value = "报价方式 10：包邮不包税，20：包邮包税，30: 不包邮不包税")
    private Integer quoteMethod;
    /** 渠道 */
    @ApiModelProperty(value = "渠道")
    private Integer salesChannel;
    /** skuid */
    @ApiModelProperty(value = "渠道")
    private Long skuId;
    private List<Long> skuIds;
    /** sku编码 */
    @ApiModelProperty(value = "sku编码")
    private String skuCode;
    /** 商品id */
    @ApiModelProperty(value = "商品id")
    private Long goodsId;
    /** 商品名称 */
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    /** 商品条码 */
    @ApiModelProperty(value = "商品条码")
    private String goodsBarcode;
    /** 所属分类id */
    @ApiModelProperty(value = "所属分类id")
    private Long categoryId;
    /** 所属分类名称 */
    @ApiModelProperty(value = "所属分类名称")
    private String categoryName;
    /** 所属分类编码 */
    @ApiModelProperty(value = "所属分类编码")
    private String categoryCode;
    /** 品牌id */
    @ApiModelProperty(value = "品牌id")
    private Long brandId;
    /** 品牌名称 */
    @ApiModelProperty(value = "品牌名称")
    private String brandName;
    /** 商品效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "商品效期")
    private LocalDate expireDate;
    /** 采购价格 */
    @ApiModelProperty(value = "商品效期")
    private BigDecimal price;
    private Integer curType;

    /** 生效日期 */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    @ApiModelProperty(value = "生效日期")
    private LocalDate effectiveDate;

    /** 有效时间开始 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "有效时间开始")
    private LocalDateTime effectiveDateStart;
    /** 有效时间结束 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "有效时间结束")
    private LocalDate effectiveDateEnd;

    @ApiModelProperty(value = "实际生效时间日期")
    private LocalDate actualEffectiveTime;

    /**
     * 是否首页通知查询
     */
    @ApiModelProperty(value = "是否首页通知查询")
    private Integer isMsgQuery;

    /** 停用标签 */
    @ApiModelProperty(value = "停用标签")
    private String closeFlag;
    /** 描述 */
    @ApiModelProperty(value = "描述")
    private String remark;
    /** 版本号 */
    @ApiModelProperty(value = "描述")
    private Long ver;

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "调价开始时间")
    private LocalDate quoteExpireDateStart;

    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "调价结束时间")
    private LocalDate quoteExpireDateEnd;


    @ApiModelProperty(name = "店铺id")
    private Long shopId;

    @ApiModelProperty(name = "店铺名称")
    private String shopName;


    @ApiModelProperty(name = "客户id")
    private Long customerId;

    /** 客户名称 */
    @ApiModelProperty(name = "客户名称")
    private String customerName;

    @ApiModelProperty(name = "销售价列表tab页")
    private Integer salesChannelTabType;

    @ApiModelProperty(name = "10=效期过期 20=效期未过期")
    private Integer expireDateState;

    @ApiModelProperty(name = "发起人ID")
    private Long createById;


    private LocalDate effectiveDateSortDay;

}
